<%@ page language="java" pageEncoding="UTF-8"
	contentType="text/html;charset=UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
	request.setAttribute("basePath", basePath);
%>
<!DOCTYPE>
<html>
<head>
<title>系统权限界面</title>
	<%@ include file="/resources/js/easyui/taglibs.jsp"%>
	<%@ include file="/resources/js/easyui/_easyui.jsp"%>
	<%@ include file="/resources/js/easyui/_message.jsp"%>
	<%@ include file="/resources/js/easyui/_viewJS.jsp"%>
</head>

<body>

	<div id="tb" style="padding:5px;height:auto;">
		<table>
			<tr>
				<td><label style="margin-left:5px">权限名称:</label></td>
				<td><input style="width:150px" id="moduleName"
					class="easyui-textbox" /></td>
				<td><label style="margin-left:5px">权限路径:</label></td>
				<td><input style="width:150px" id="modulePath"
					class="easyui-textbox" /></td>
				<td><label style="margin-left:5px">权限说明:</label></td>
				<td><input style="width:150px" id="moduleRemark"
					class="easyui-textbox" /></td>
				<td><a href="javascript:;"
					style="margin-left: 10px;vertical-align:middle"
					class="easyui-linkbutton" iconCls="icon-search" id="queryDataBtn">查询</a>
				</td>
			</tr>
		</table>

		<div id="button">
			<a href="javascript:void(0)" class="easyui-linkbutton" plain="true"
				iconCls="icon-add" id="addWinBtn">新增</a> <a
				href="javascript:void(0)" class="easyui-linkbutton" plain="true"
				iconCls="icon-edit" id="editWinBtn">修改</a> <a
				href="javascript:void(0)" class="easyui-linkbutton" plain="true"
				iconCls="icon-cancel" id="delBtn">删除</a>
		</div>

	</div>

	<table id="dg" title="权限列表" fitColumns="true"
		data-options="
	   pageList:[10,20,30],
       pageSize:10,
       toolbar:'#tb',
       pagination:true,
       singleSelect:true,
       collapsible:true,
       url:'${basePath}web/module/list.json',
       method:'GET',
       rownumbers:false">
		<thead>
			<tr>
				<th data-options="field:'moduleid',checkbox:true,width:10"></th>
				<th data-options="field:'ntype' ,width:20" align="center"
					formatter="moduleType">权限类别</th>
				<th data-options="field:'namecn' ,width:30" align="center">权限名称(中文)</th>
				<th data-options="field:'sname' ,width:30" align="center">权限名称(英文)</th>
				<th data-options="field:'attribute' ,width:60" align="center">权限属性</th>
				<th data-options="field:'url' ,width:60" align="center">权限路径</th>
				<th data-options="field:'remark' ,width:30" align="center">说明</th>
			</tr>
		</thead>
	</table>

	<!-- 添加窗体s -->
	<div id="addWin" class="easyui-window" minimizable="false"
		collapsible="false" title="新增权限窗口"
		data-options="closed:true,modal:true,top:20"
		style="width:660px;height:380px;">
		<div id="addWinDetailTable" class="easyui-layout"
			data-options="fit:true">
			<div data-options="region:'center',border:false"></div>
			<div data-options="region:'south',border:false"
				style="text-align:center;padding:5px 5px 5px 0;background-color: #F5F5F5;border-top: solid 1px #E6E6E6;">
				<a class="easyui-linkbutton" data-options="iconCls:'icon-ok'"
					href="javascript:void(0)" id="addSubBtn">提交</a> <a
					class="easyui-linkbutton" data-options="iconCls:'icon-cancel'"
					href="javascript:void(0)" id="closeAddWinBtn">关闭</a>
			</div>
		</div>
	</div>
	<!-- 添加窗体e -->

	<!-- 修改窗体s -->
	<div id="editWin" class="easyui-window" minimizable="false"
		collapsible="false" title="编辑权限窗口"
		data-options="closed:true,modal:true,top:20"
		style="width:600px;height:500px;">
		<div id="editWinDetailTable" class="easyui-layout"
			data-options="fit:true">
			<div data-options="region:'center',border:false"></div>
			<div data-options="region:'south',border:false"
				style="text-align:center;padding:5px 5px 5px 0;background-color: #F5F5F5;border-top: solid 1px #E6E6E6;">
				<a class="easyui-linkbutton" data-options="iconCls:'icon-ok'"
					href="javascript:void(0)" id="editSubBtn">提交</a> <a
					class="easyui-linkbutton" data-options="iconCls:'icon-cancel'"
					href="javascript:void(0)" id="closeEditWinBtn">关闭</a>
			</div>
		</div>
	</div>
	<!-- 修改窗体e -->
</body>

<script type="text/javascript">
	function View() {
		var that = this;

		that.events = [ {
			sel : '#queryDataBtn',
			act : 'click',
			func : 'queryData'
		}, {
			sel : '#addWinBtn',
			act : 'click',
			func : 'addWin'
		}, {
			sel : '#addSubBtn',
			act : 'click',
			func : 'addSub'
		}, {
			sel : '#closeAddWinBtn',
			act : 'click',
			func : 'closeAddWin'
		}, {
			sel : '#editWinBtn',
			act : 'click',
			func : 'editWin'
		}, {
			sel : '#editSubBtn',
			act : 'click',
			func : 'editSub'
		}, {
			sel : '#closeEditWinBtn',
			act : 'click',
			func : 'closeEditWin'
		}, {
			sel : '#delBtn',
			act : 'click',
			func : 'delSub'
		} ];

		that.$dataGrid = $('#dg');
		that.$addWin = $('#addWin');
		that.$addWinDetailTable = $("#addWinDetailTable");

		that.$editWin = $('#editWin');
		that.$editWinDetailTable = $("#editWinDetailTable");

		/* 模糊查询 */
		that.dataGridOption = {
			queryParams : {
				moduleName : function() {
					console.log("module name is :"+$('#moduleName').val());
					return $('#moduleName').val();
				},
				modulePath : function() {
					return $('#modulePath').val();
				},
				moduleRemark : function() {
					return $('#moduleRemark').val();
				}
			}
		};

		$.extend(that.dataGridOption, ViewHelper.template.gridOption);

		that.$dataGrid.datagrid(that.dataGridOption);

		that.queryData = function() {
			that.$dataGrid.datagrid(that.dataGridOption);
		};
		/* 模糊查询 */

		that.addWin = function() {
			var url = "${basePath}web/module/moduleAddView";
			that.$addWinDetailTable.layout('panel', 'center').find('iframe')
					.remove();
			that.$addWinDetailTable
					.layout('panel', 'center')
					.append(
							"<iframe id='add_iframe' name='info_iframe' width='100%' height='100%' frameborder='0'  src='"
									+ url + "'></iframe>");
			that.$addWin.dialog('open');
		};

		that.addSub = function() {
			$("#add_iframe")[0].contentWindow.add();
		};

		that.closeAddWin = function(result) {
			if (result == 1) {
				$.fn.window.defaults.top = 50;
				$.messager.alert('提示', '保存成功!', 'info');
			} else if (result == 0) {
				$.fn.window.defaults.top = 50;
				$.messager.alert('提示', '保存失败!', 'error');
			}
			that.$dataGrid.datagrid('reload');
			that.$addWin.window('close');
		};

		that.editWin = function() {
			var row = that.$dataGrid.datagrid('getSelected');
			if (row == null) {
				$.fn.window.defaults.top = 50;
				$.messager.alert('警告', '请选择一条', "error");
				return;
			}
			var url = "${basePath}web/module/" + row.moduleid + "/moduleEditView";
			that.$editWinDetailTable.layout('panel', 'center').find('iframe')
					.remove();
			that.$editWinDetailTable
					.layout('panel', 'center')
					.append(
							"<iframe id='edit_iframe' name='info_iframe' width='100%' height='100%' frameborder='0'  src='"
									+ url + "'></iframe>");
			that.$editWin.dialog('open');
		};

		that.editSub = function() {
			$("#edit_iframe")[0].contentWindow.edit();
		};

		that.closeEditWin = function(result) {
			if (result == 1) {
				$.fn.window.defaults.top = 50;
				$.messager.alert('提示', '保存成功!', 'info');
			} else if (result == 0) {
				$.fn.window.defaults.top = 50;
				$.messager.alert('提示', '保存失败!', 'error');
			}
			that.$dataGrid.datagrid('reload');
			that.$editWin.window('close');
		};

		that.delSub = function() {
			var row = that.$dataGrid.datagrid('getSelected');
			if (row == null) {
				$.fn.window.defaults.top = 50;
				$.messager.alert('警告', '请选择需要删除的数据');
				return;
			}
			var confirm, moduleid = row.moduleid;

			$.fn.window.defaults.top = 50;
			confirm = window.confirm('删除后数据不能恢复，确定要删除吗？');
			if (confirm) {
				$.ajax({
					url : '${basePath}web/module/' + moduleid + '/removeModule',
					type : 'DELETE',
					data : {
						"moduleid" : moduleid
					},
					async : false, //默认为true 异步
					traditional : true,
					error : function() {
						$.fn.window.defaults.top = 50;
						$.messager.alert('提示', '删除失败', 'error');
					},
					success : function() {
						$("#dg").datagrid('reload');
						$.fn.window.defaults.top = 50;
						$.messager.alert('提示', '删除成功', 'info');
					}
				});
			}
		};

		EventHandler.call(that, that.events);

		return that;
	}

	var view;

	function moduleType(value, row, index) {
		if (row.ntype == 1) {
			return "PC端";
		} else if (row.ntype == 2) {
			return "微信端";
		} else if (row.ntype == 3) {
			return "APP端";
		}
	}

	$(function() {
		inherit(View, EventHandler);
		view = new View();
	});
</script>

</html>